<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
    </head>
    <body>
        <script>
            let arr = [1, 2, 3, 4];
            // let newArr = arr.map((item, index, arr) => {
            //     return item + 1;
            // });
            // console.log(newArr); // [2, 3, 4, 5]
            // console.log(arr); // 不会改变原数组 [1, 2, 3, 4]

            Array.prototype.myMap = function (callback) {
                // 最终要返回的数组
                if (typeof callback !== 'function') {
                    throw new Error('参数必须是一个函数');
                }
                let result = [];
                for (let i = 0; i < this.length; i++) {
                    result.push(callback(this[i], i, this));
                }
                return result;
            };
            let newArr = arr.myMap((item, index, arr) => {
                return item + 1;
            });
            console.log(newArr); // [2, 3, 4, 5]
            console.log(arr); // 不会改变原数组 [1, 2, 3, 4]
        </script>
    </body>
</html>
